* Show the system mouse pointer.
*/
showSystemCursor: function() {
- global.stage.show_cursor();
+ this._cursorTracker.set_pointer_visible(true);
},
/**
* Hide the system mouse pointer.
*/
hideSystemCursor: function() {
- global.stage.hide_cursor();
+ this._cursorTracker.set_pointer_visible(false);
},
/**
// Make sure system mouse pointer is shown when all zoom regions are
// invisible.
if (!activate)
- global.stage.show_cursor();
+ this._cursorTracker.set_pointer_visible(true);
// Notify interested parties of this change
this.emit('active-changed', activate);
this._shortLightbox.connect('shown', Lang.bind(this, this._onShortLightboxShown));
this.idleMonitor = Meta.IdleMonitor.get_core();
+ this._cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
},
_createBackground: function(monitorIndex) {
this._hideLockScreenComplete();
}
- global.stage.show_cursor();
+ this._cursorTracker.set_pointer_visible(true);
},
_ensureUnlockDialog: function(onPrimary, allowCancel) {
return false;
});
- global.stage.hide_cursor();
+ this._cursorTracker.set_pointer_tracker(false);
this._lockScreenState = MessageTray.State.SHOWN;
this._lockScreenGroup.fixed_position_set = false;
* @mods: (out): the current set of modifier keys that are pressed down
*
* Gets the pointer coordinates and current modifier key state.
- * This is a wrapper around gdk_display_get_pointer() that strips
- * out any un-declared modifier flags, to make gjs happy; see
- * https://bugzilla.gnome.org/show_bug.cgi?id=597292.
*/
void
shell_global_get_pointer (ShellGlobal *global,
int *y,
ClutterModifierType *mods)
{
- GdkDeviceManager *gmanager;
- GdkDevice *gdevice;
- GdkScreen *gscreen;
- GdkModifierType raw_mods;
-
- gmanager = gdk_display_get_device_manager (global->gdk_display);
- gdevice = gdk_device_manager_get_client_pointer (gmanager);
- gdk_device_get_position (gdevice, &gscreen, x, y);
- gdk_device_get_state (gdevice,
- gdk_screen_get_root_window (gscreen),
- NULL, &raw_mods);
- *mods = raw_mods & GDK_MODIFIER_MASK;
+ ClutterModifierType raw_mods;
+ MetaCursorTracker *tracker;
+
+ tracker = meta_cursor_tracker_get_for_screen (global->meta_screen);
+ meta_cursor_tracker_get_pointer (tracker, x, y, &raw_mods);
+
+ *mods = raw_mods & CLUTTER_MODIFIER_MASK;
}
/**
shell_global_sync_pointer (ShellGlobal *global)
{
int x, y;
- GdkModifierType mods;
- GdkDeviceManager *gmanager;
- GdkDevice *gdevice;
- GdkScreen *gscreen;
+ ClutterModifierType mods;
ClutterMotionEvent event;
- gmanager = gdk_display_get_device_manager (global->gdk_display);
- gdevice = gdk_device_manager_get_client_pointer (gmanager);
-
- gdk_device_get_position (gdevice, &gscreen, &x, &y);
- gdk_device_get_state (gdevice,
- gdk_screen_get_root_window (gscreen),
- NULL, &mods);
+ shell_global_get_pointer (global, &x, &y, &mods);
event.type = CLUTTER_MOTION;
event.time = shell_global_get_current_time (global);